package cn.bdqn.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 发货单对象
 * @author dkj
 */
public class SendFreight implements Serializable {

    /**
     * id
     */
    private Integer id;


    /**
     * 客户id
     */
    private Integer clientId;

    /**
     * 客户对象
     */
    private Client client;

    /**
     * 订单id
     */
    private Integer orderId;

    /**
     * 订单对象
     */
    private Order order;

    /**
     * 发货单号
     */
    private String sendFreightNumber;

    /**
     * 付款类型  1.线上 2.线下
     */
    private Integer paymentType;


    /**
     * 发货单描述
     */
    private String sendFreightDescribe;

    /**
     * da发货时间
     */
    private Date departTime;

    /**
     * 预计送达时间
     */
    private Date predictDeliveryTime;

    /**
     * 实际送达时间
     */
    private Date practicalDeliveryTime;

    /**
     * 运费总金额
     */
    private BigDecimal freightSum;

    /**
     * 发货单状态  1.出库2.未出库
     */
    private Integer sendFreightState;

    /**
     * 1.配送中 2.已完成
     */
    private Integer transportState;


    private List<SendEquip> sendEquips = new ArrayList<>();

    public Integer getClientId() {
        return clientId;
    }

    public void setClientId(Integer clientId) {
        this.clientId = clientId;
    }

    public Integer getOrderId() {
        return orderId;
    }

    public void setOrderId(Integer orderId) {
        this.orderId = orderId;
    }

    public List<SendEquip> getSendEquips() {
        return sendEquips;
    }

    public void setSendEquips(List<SendEquip> sendEquips) {
        this.sendEquips = sendEquips;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Client getClient() {
        return client;
    }

    public void setClient(Client client) {
        this.client = client;
    }

    public Order getOrder() {
        return order;
    }

    public void setOrder(Order order) {
        this.order = order;
    }

    public String getSendFreightNumber() {
        return sendFreightNumber;
    }

    public void setSendFreightNumber(String sendFreightNumber) {
        this.sendFreightNumber = sendFreightNumber == null ? null : sendFreightNumber.trim();
    }

    public Integer getPaymentType() {
        return paymentType;
    }

    public void setPaymentType(Integer paymentType) {
        this.paymentType = paymentType;
    }

    public String getSendFreightDescribe() {
        return sendFreightDescribe;
    }

    public void setSendFreightDescribe(String sendFreightDescribe) {
        this.sendFreightDescribe = sendFreightDescribe == null ? null : sendFreightDescribe.trim();
    }

    public Date getDepartTime() {
        return departTime;
    }

    public void setDepartTime(Date departTime) {
        this.departTime = departTime;
    }

    public Date getPredictDeliveryTime() {
        return predictDeliveryTime;
    }

    public void setPredictDeliveryTime(Date predictDeliveryTime) {
        this.predictDeliveryTime = predictDeliveryTime;
    }

    public Date getPracticalDeliveryTime() {
        return practicalDeliveryTime;
    }

    public void setPracticalDeliveryTime(Date practicalDeliveryTime) {
        this.practicalDeliveryTime = practicalDeliveryTime;
    }

    public BigDecimal getFreightSum() {
        return freightSum;
    }

    public void setFreightSum(BigDecimal freightSum) {
        this.freightSum = freightSum;
    }

    public Integer getSendFreightState() {
        return sendFreightState;
    }

    public void setSendFreightState(Integer sendFreightState) {
        this.sendFreightState = sendFreightState;
    }

    public Integer getTransportState() {
        return transportState;
    }

    public void setTransportState(Integer transportState) {
        this.transportState = transportState;
    }

    @Override
    public String toString() {
        return "SendFreight{" +
                "id=" + id +
                ", client=" + client +
                ", order=" + order +
                ", sendFreightNumber='" + sendFreightNumber + '\'' +
                ", paymentType=" + paymentType +
                ", sendFreightDescribe='" + sendFreightDescribe + '\'' +
                ", departTime=" + departTime +
                ", predictDeliveryTime=" + predictDeliveryTime +
                ", practicalDeliveryTime=" + practicalDeliveryTime +
                ", freightSum=" + freightSum +
                ", sendFreightState=" + sendFreightState +
                ", transportState=" + transportState +
                '}';
    }
}
